@php
$first = !empty($items) ? $items[0] : null;
$pack_slug_v = $params['pack_slug'] ?? '';
$group_slug_v = $params['group_slug'] ?? '';
$puzzle_slug_v = $params['puzzle_slug'] ?? '';
$pack_name = $first ? ($first['pack'] ?? '') : '';
$group_num = $first ? ($first['group'] ?? $group_slug_v) : $group_slug_v;
$puz_num = $first ? ($first['puzzle'] ?? $puzzle_slug_v) : $puzzle_slug_v;
$pack_e = htmlspecialchars($pack_name, ENT_QUOTES, 'UTF-8');
$ge = htmlspecialchars($group_num, ENT_QUOTES, 'UTF-8');
$pze = htmlspecialchars($puz_num, ENT_QUOTES, 'UTF-8');
$pack_link = '/solution-codycross-' . $pack_slug_v;
$group_link = '/solution-codycross-' . $pack_slug_v . '/groupe-' . $group_slug_v;
$pack_url_full = 'https://codycross.fr' . $pack_link;
$group_url_full = 'https://codycross.fr' . $group_link;
$indice_count = count($items ?? []);
$indice_word = $indice_count === 1 ? 'indice' : 'indices';
$canonical_url = 'https://codycross.fr/solution-codycross-' . $pack_slug_v . '/groupe-' . $group_slug_v . '/grille-' . $puzzle_slug_v;
$page_title = 'CodyCross ' . $pack_name . ' Groupe ' . $group_num . ' Grille ' . $puz_num . ' Solution';
$page_desc = 'Solutions CodyCross ' . $pack_name . ' Groupe ' . $group_num . ' Grille ' . $puz_num . ' — tous les indices et réponses de la grille. Mises à jour quotidiennes.';
$ld = [
'@context' => 'https://schema.org',
'@graph' => [
[
'@type' => 'BreadcrumbList',
'itemListElement' => [
[ '@type' => 'ListItem', 'position' => 1, 'name' => 'Accueil', 'item' => 'https://codycross.fr/' ],
[ '@type' => 'ListItem', 'position' => 2, 'name' => $pack_name, 'item' => $pack_url_full ],
[ '@type' => 'ListItem', 'position' => 3, 'name' => 'Groupe ' . $group_num, 'item' => $group_url_full ],
[ '@type' => 'ListItem', 'position' => 4, 'name' => 'Grille ' . $puz_num, 'item' => $canonical_url ],
],
],
[
'@type' => 'CollectionPage',
'@id' => $canonical_url . '#collectionpage',
'url' => $canonical_url,
'name' => $page_title,
'description' => $page_desc,
'inLanguage' => 'fr-FR',
'isPartOf' => [ '@id' => 'https://codycross.fr/#website' ],
],
],
];
if (!empty($items)) {
$list_items = [];
$idx = 0;
foreach ($items as $row) {
$cs = $row['clue_slug'] ?? '';
if ($cs === '') continue;
$idx++;
$list_items[] = [
'@type' => 'ListItem',
'position' => $idx,
'url' => 'https://codycross.fr/' . $cs . '-codycross',
'name' => $row['clue'] ?? '',
];
}
if (!empty($list_items)) {
$ld['@graph'][] = [
'@type' => 'ItemList',
'name' => 'Indices de la Grille ' . $puz_num,
'numberOfItems' => count($list_items),
'itemListElement' => $list_items,
];
}
}
$ld_json = json_encode($ld, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
@endphp
Grille {!! $pze !!} — Groupe {!! $ge !!}
CodyCross {!! $pack_e !!} — Grille {!! $pze !!}
Voici les {!! $indice_count !!} {!! $indice_word !!} de la grille CodyCross {!! $pack_e !!} Groupe {!! $ge !!} Grille {!! $pze !!}. Cette grille fait partie du pack {!! $pack_e !!} (Groupe {!! $ge !!}) du jeu CodyCross développé par Fanatee. Cliquez sur un indice ci-dessous pour accéder à sa réponse complète avec le nombre de lettres et la solution vérifiée par notre équipe éditoriale.
Indices de la Grille {!! $pze !!}
@if(!empty($items)) @foreach($items as $row) @php $clue_e = htmlspecialchars($row['clue']??'', ENT_QUOTES, 'UTF-8'); $clue_url = '/' . ($row['clue_slug'] ?? '') . '-codycross'; @endphp {!! $clue_e !!} @endforeach @elseAucun indice disponible pour cette grille.
@endif